package com.xingchi.tornado.basic;

/**
 * 基础枚举
 *
 * @author xingchi
 * @date 2022/8/18 22:35
 * @modified xingchi
 */
public interface BaseEnum {

    /**
     * 获取枚举码
     *
     * @return      枚举码
     */
    Integer getCode();

    /**
     * 获取该枚举描述信息
     *
     * @return      描述信息
     */
    String getDesc();

    /**
     * 可见性，默认都可见
     *
     * @return  是否可见
     */
    default boolean isVisible() {
        return true;
    }

    /**
     * 是否是某个类型
     *
     * @param code  code
     * @return      是否是某个枚举码
     */
    default boolean isType(Integer code) {
        return this.getCode().equals(code);
    }

}
